#!/bin/bash

#--------------------------------------------------
# Hive ORC 表导出到 MySQL 脚本
# 使用 HCatalog 模式，支持 ORC 格式自动解析
# 请根据实际环境修改连接信息
#--------------------------------------------------

# MySQL 连接配置
MYSQL_CONNECT="jdbc:mysql://192.168.88.148:3306/ads_aml"
MYSQL_USERNAME="root"
MYSQL_PASSWORD="123456"

# Hive 数据库
HIVE_DATABASE="ads"

# 并行度（建议小表用 1）
NUM_MAPPERS=1

# 日志时间戳
TIMESTAMP=$(date "+%Y-%m-%d %H:%M:%S")
LOG_FILE="/aml/export_log/sqoop_export_$(date +%Y%m%d_%H%M%S).log"

echo "[$TIMESTAMP] 开始执行 Hive 到 MySQL 导出任务" | tee -a $LOG_FILE

# 函数：执行导出
run_export() {
    local hive_table=$1
    local mysql_table=$2
    local desc=$3

    echo "--------------------------------------------------" | tee -a $LOG_FILE
    echo "[$TIMESTAMP] 正在导出: $desc" | tee -a $LOG_FILE
    echo "          Hive表: $HIVE_DATABASE.$hive_table" | tee -a $LOG_FILE
    echo "          MySQL表: $mysql_table" | tee -a $LOG_FILE

    sqoop export \
        --connect "$MYSQL_CONNECT" \
        --username "$MYSQL_USERNAME" \
        --password "$MYSQL_PASSWORD" \
        --table "$mysql_table" \
        --hcatalog-table "$hive_table" \
        --hcatalog-database "$HIVE_DATABASE" \
        -m "$NUM_MAPPERS" \
        2>&1 | tee -a $LOG_FILE

    if [ ${PIPESTATUS[0]} -eq 0 ]; then
        echo "[$TIMESTAMP] SUCCESS: $desc 导出成功" | tee -a $LOG_FILE
    else
        echo "[$TIMESTAMP] FAILED: $desc 导出失败" | tee -a $LOG_FILE
        # 不退出，继续执行其他表
    fi
}

# 执行四张表导出
run_export "ads_aml_customer_risk_profile"   "ads_aml_customer_risk_profile"   "客户风险全景视图"
run_export "ads_aml_daily_risk_report"       "ads_aml_daily_risk_report"       "交易风险日报"
run_export "ads_aml_regulatory_monthly"      "ads_aml_regulatory_monthly"      "监管合规月报"
run_export "ads_aml_alert_efficiency"        "ads_aml_alert_efficiency"        "预警规则效能分析"

# 结束
FINAL_TIME=$(date "+%Y-%m-%d %H:%M:%S")
echo "--------------------------------------------------" | tee -a $LOG_FILE
echo "[$FINAL_TIME] 所有导出任务执行完毕。日志已保存至: $LOG_FILE" | tee -a $LOG_FILE